//
//  SqliteDBMgr.h
//
//  Created by user on 12-5-15.
//  Copyright 2012年 (网龙)DeNA. All rights reserved.
//  不支持多线程操作

#ifndef GHSQLITEDBMGR_H
#define GHSQLITEDBMGR_H

#include "GhSqliteDb.h"
#include <map>
#include <string>

using namespace std;

class GhSqliteDBMgr
{
public:

    typedef map<string,GhSqliteDb*> SqliteDbMap;

    static GhSqliteDBMgr* sharedInstance();
    static void destroyInstance();
    
    GhSqliteDb* createSqliteDb(const char* pszDbName);
    void destroyAll();
    bool deleteDbByPointer(GhSqliteDb* pkDb);
    bool deleteDbByName(const char* pszName);
    bool checkExistDb(const char* pszName);

protected:

    GhSqliteDBMgr();
    ~GhSqliteDBMgr();

    void addDb(const string& strName,GhSqliteDb* pkDb);
    bool deleteDb(const char* pszName);
    
    SqliteDbMap m_kDbMap;

private:

    static GhSqliteDBMgr* ms_pkSqliteMgr;
};

#define g_pSqlite GhSqliteDBMgr::sharedInstance()

#endif
